home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 23
/
Aminet 23 (1998)(GTI - Schatztruhe)[!][Feb 1998].iso
/
Aminet
/
disk
/
misc
/
TransADF.lha
/
Source
/
td.c
< prev
next >
Wrap
C/C++ Source or Header
|
1997-11-29
|
2KB
|
66 lines
/*--------------------*/
/* TrackDisk Routines */
/*--------------------*/
#include <exec/types.h>
#include <exec/io.h>
#include <devices/trackdisk.h>
#include <clib/exec_protos.h>
#include "td.h"
/* Private functions */
BYTE rwTrack (APTR Buffer, UBYTE NumTracks, UBYTE TrackNum,
struct IOExtTD *DiskReq);
/*
** Read a number of complete tracks from a specified unit.
** Return DoIO()'s return value.
*/
BYTE readTrack (APTR rBuffer,
UBYTE rNumTracks,
UBYTE rTrackNum,
struct IOExtTD *rDiskReq)
{
/* Read from track */
rDiskReq->iotd_Req.io_Command = CMD_READ;
return rwTrack (rBuffer, rNumTracks, rTrackNum, rDiskReq);
}
/*
** Write a number of complete tracks to a specified unit with TD_FORMAT.
** Return DoIO()'s return value.
*/
BYTE writeTrack (APTR wBuffer,
UBYTE wNumTracks,
UBYTE wTrackNum,
struct IOExtTD *wDiskReq)
{
/* Write to track */
wDiskReq->iotd_Req.io_Command = TD_FORMAT;
return rwTrack (wBuffer, wNumTracks, wTrackNum, wDiskReq);
}
/*
** Perform track-sized IO on specified unit.
** Return DoIO()'s return value.
*/
BYTE rwTrack (APTR Buffer,
UBYTE NumTracks,
UBYTE TrackNum,
struct IOExtTD *DiskReq)
{
DiskReq->iotd_Req.io_Flags = 0;
DiskReq->iotd_Req.io_Data = Buffer;
DiskReq->iotd_Req.io_Length = NumTracks * TRACK_SIZE;
DiskReq->iotd_Req.io_Offset = TrackNum * TRACK_SIZE;
return DoIO((struct IORequest *)DiskReq);
}